/**
 * 
 * 注意：不要安装bcrypt，必须安装bcryptjs。因为bcrypt不支持window，在window下会自动关闭mongodb数据库。
 * 加密处理：就是把你的密码进行一次不可逆的编译，这样就算别人得到了这个密码值，也不能进行直接登录操作。
 *          比如我们使用的MD5加密或者hash256加密算法，其实他们都是hash的算法。
 * 加盐处理：把原来的密码里，加入一些其他的字符串。并且我们可以自己设置加入字符串的强度。
 *          把加盐的密码进行hash处理后，再存入数据库就比较安全了。
 * 
 * bcryptjs加密插件，md5加密    个人感觉bcrypt比md5更好
 * 
 * 安装bcryptjs: npm intall bcryptjs --save
 *            如果安装错误，则使用淘宝源来安装，或者重新安装一次npm instal --save bcrypt --registry=https://registry.npm.taobao.org
 * 
 * 参考service/database/schema/User.js
 * 需求：每次存储数据时都要执行密码的加盐和加密处理
 *    const bcrypt = require('bcryptjs');
 *    const SALT_WORK_FACTOR = 10;  // 定义加密等级
 *    userSchema.pre('save', function(next){
 *       bcrypt.genSalt( SALT_WORK_FACTOR,(err,salt)=>{   // 加盐后，会有2个参数传递过来，一个是失败，一个似乎成功
 *           if(err) return next(err)
 *           bcrypt.hash(this.password,salt, (err,hash)=>{
 *               if(err) return next(err)
 *               this.password = hash
 *               next()
 *           }) 
 *       })
 *    })
*/